The present disclosure relates generally to memory management, and more particularly to memory pages.
Conventional computer systems include a large amount of memory. For example, a main memory of a computer system may include non-volatile memory that is in excess of a terabyte. This memory is used for manipulating data. For example, a computer system may execute program from this memory and store program data in this memory.
The amount of memory accessible to a computer system has increased over time while the cost per byte of memory has decreased. These advancements in memory technology and lower costs have resulted in computer systems having vast amounts of memory. To handle the large amount of memory, computer systems include a kernel, which is a central part of an operating system. The kernel manages system resources of the computer system, such as the memory. The kernel divides the memory of the computer system into units that are referred to as memory pages or “pages.” Each page is associated with a subset of the memory of the computer system. Typically, the kernel manages the memory pages using page management data structures. The page management data structures store page entries corresponding to the pages. Each page in memory has an associated page entry in the page management data structure that defines the page.
As the amount of memory in a computer system has increased, the number of pages utilized by the kernel has also increased. Further, because each page is associated with a page entry, the size of the page entry data structures has also increased.